package org.example.pojo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 *
 * </p>
 *
 * @author zhx
 * @since 2025-01-17
 */
@Data
@TableName("community_content")
public class CommunityContent implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 内容ID，自增整数，作为主键，唯一标识每条社区内容
     */
    @TableId(value = "content_id", type = IdType.AUTO)
    private Integer contentId;

    /**
     * 内容标题，字符串类型，长度为255，不能为空
     */
    @TableField("title")
    private String title;

    /**
     * 内容类型，字符串类型，长度为50，用于标识内容的类型，如“对话”“美妆”“设计”等
     */
    @TableField("content_type")
    private String contentType;

    /**
     * 内容描述，文本类型，用于存储内容的简要描述
     */
    @TableField("description")
    private String description;

    /**
     * 发布者用户ID，整数类型，不能为空，作为外键关联用户表，标识内容的发布者
     */
    @TableField("user_id")
    private Integer userId;

    /**
     * 发布时间，日期时间类型，不能为空，默认值为当前时间戳
     */
    @TableField("publish_time")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date publishTime;

    /**
     * 点赞数，整数类型，默认值为0
     */
    @TableField("like_count")
    private Integer likeCount;

    /**
     * 分享数，整数，记录作品被分享的次数，默认值为0
     */
    @TableField("share_count")
    private Integer shareCount;

    /**
     * 图片路径或链接，字符串类型，存储与内容相关的图片
     */
    @TableField("image_url")
    private String imageUrl;

    /**
     * 用户昵称
     */
    @TableField("nickname")
    private String nickname;
    /**
     * 头像，字符串，存储用户头像的路径或链接
     */
    @TableField("avatar")
    private String avatar;

    /**
     * 个性签名，字符串，用户的个性签名，可为空
     */
    @TableField("signature")
    private String signature;

    /**
     * 关注数，整数，用户关注的其他用户数量
     */
    @TableField("follow_count")
    private Integer followCount;

    /**
     * 粉丝数，整数，关注该用户的其他用户数量
     */
    @TableField("follower_count")
    private Integer followerCount;

    /**
     * 获赞数，整数，用户获得的总点赞数
     */
    @TableField("like_received_count")
    private Integer likeReceivedCount;


}
